/* VtkSoundControl widget */

#ifndef __VTK_SOUND_CONTROL_H
#define __VTK_SOUND_CONTROL_H

#include <gtk/gtk.h>

G_BEGIN_DECLS

#define VTK_TYPE_SOUND_CONTROL         (vtk_sound_control_get_type ())
#define VTK_SOUND_CONTROL(obj)         (G_TYPE_CHECK_INSTANCE_CAST ((obj), VTK_TYPE_SOUND_CONTROL, VtkSoundControl))
#define VTK_SOUND_CONTROL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VTK_TYPE_SOUND_CONTROL, VtkSoundControlClass))
#define VTK_IS_SOUND_CONTROL(obj)      (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VTK_TYPE_SOUND_CONTROL))

typedef struct _VtkSoundControl VtkSoundControl;
typedef struct _VtkSoundControlClass VtkSoundControlClass;

struct _VtkSoundControl
{
  GtkHBox hbox;
  
  /* Private */
  GtkWidget *button;
  GtkWidget *hscale;
  
  gdouble value;
  gdouble muted_value;
  
  GdkPixbuf *audio_muted;
  GdkPixbuf *audio_low;
  GdkPixbuf *audio_medium;
  GdkPixbuf *audio_high;

};

struct _VtkSoundControlClass
{
  GtkHBoxClass hbox_class;
  
  /* signal */
  void (* sound_value_changed) (VtkSoundControl *sound_control,
                                gdouble value);
};

GType      vtk_sound_control_get_type (void) G_GNUC_CONST;
GtkWidget* vtk_sound_control_new      (char*);
void	   vtk_sound_control_set_pixbuf_from_base_path (VtkSoundControl *sound_control, gchar *base_path);

G_END_DECLS

#endif /* __VTK_SOUND_CONTROL_H */
